// https://umijs.org/config/
import { defineConfig } from 'umi';
import defaultSettings from './defaultSettings';
import proxy from './proxy';
import routes from './routes';

const { REACT_APP_ENV } = process.env;

// defineConfig: 如果你想在写配置时也有提示, 可以通过 umi 的 defineConfig 方法定义配置.
export default defineConfig({
  // 显示标题, 默认会显示 http://localhost:8000
  title: false,
  // 使用 browser 路由, 即默认选项
  history: {
    type: 'browser',
  },
  // umi routes: https://umijs.org/docs/routing
  // 配置路由
  routes,
  // Theme for antd: https://ant.design/docs/react/customize-theme-cn
  // 配置主题, 实际上是配 less 变量
  theme: {
    'primary-color': defaultSettings.primaryColor,
  },
  // 启用按需加载
  dynamicImport: {
    // 加载页面组件时显示的 loading 组件文件
    loading: '@/components/PageLoading/index',
  },
  // 配置代理, 仅在 dev 时生效
  proxy: proxy[REACT_APP_ENV || 'dev'],
  // 生成文件包含 hash 后缀
  hash: true,
  // 忽略 moment 的 locale 文件, 用于减少尺寸
  ignoreMomentLocale: true,
  // 快速刷新功能 https://umijs.org/config#fastrefresh
  // 开发时可以保持组件状态, 同时编辑提供即时反馈
  fastRefresh: {},
  // 使用 webpack 5 代替 webpack 4 进行构建
  webpack5: {},
  // 兼容的浏览器最低版本
  targets: {
    ie: 11,
  },

  // 针对 react 应用的插件集 https://umijs.org/zh-CN/plugins/preset-react
  // Ant Design
  antd: {},
  // Dva.js
  dva: {
    // 启用 dva model 的热更新
    hmr: true,
  },
  // 国际化
  locale: {
    // default zh-CN
    default: 'zh-CN',
    antd: true,
    // default true, when it is true, will use `navigator.language` overwrite default
    baseNavigator: true,
  },
  // 压缩器
  esbuild: {},
});
